//package com.example.springai.config;
//
//import org.springframework.ai.tool.ToolCallback;
//import org.springframework.ai.tool.resolution.SpringBeanToolCallbackResolver;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.ApplicationContext;
//import org.springframework.context.support.GenericApplicationContext;
//import org.springframework.stereotype.Component;
//
//import java.util.Arrays;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.function.Function;
//
//@Component
//public class ToosBeanFetcher {
//    @Autowired
//    private ApplicationContext applicationContext;
//
////    @Autowired
////    private SpringBeanToolCallbackResolver
//
//    public  Map<String, ToolCallback> ToosBeanFetcher() {
//        // 获取所有 Bean 的名称
//        return resolveToolCallbacks(applicationContext);
//    }
//
//    /**
//     * 解析所有 Function 类型的 Bean，并将其封装为 Map<String, ToolCallback>
//     *
//     * @param applicationContext Spring 应用上下文
//     * @return Map<String, ToolCallback>，键为 Bean 名称，值为解析后的 ToolCallback
//     */
//    public static Map<String, ToolCallback> resolveToolCallbacks(ApplicationContext applicationContext) {
//        // 获取所有 Function 类型的 Bean
//        Map<String, Function> functionBeans = applicationContext.getBeansOfType(Function.class);
//
//        // 创建 GenericApplicationContext
//        GenericApplicationContext genericApplicationContext = new GenericApplicationContext(applicationContext);
//
//        // 构建 SpringBeanToolCallbackResolver
//        SpringBeanToolCallbackResolver resolver = SpringBeanToolCallbackResolver.builder()
//                .applicationContext(genericApplicationContext)
//                .build();
//        // 创建 Map 存储 ToolCallback
//        Map<String, ToolCallback> toolCallbackMap = new HashMap<>();
//        // 遍历 Function 类型的 Bean 并解析为 ToolCallback
//        functionBeans.forEach((beanName, function) -> {
//            ToolCallback toolCallback = resolver.resolve(beanName);
//            toolCallbackMap.put(beanName, toolCallback);
//        });
//        return toolCallbackMap;
//    }
//
//    // 获取特定类型的 Bean
////    public Map<String, Function> getFunctionBeans() {
////        return applicationContext.getBeansOfType(Function.class);
////    }
//
//    // 获取特定名称的 Bean
////    public Function<QueryMajorCountRequest, QueryMajorCountResponse> getQueryMajorCountBean() {
////        return applicationContext.getBean("queryMajorCount", Function.class);
////    }
//}